package com.clstu.staticmathod_.codeblock_;

public class CodeBlock02 {
    public static void main(String[] args) {
        new A();
    }
}

//      优先级： （静态变量|静态代码块）》（普通变量|普通代码块）》构造器
       //优先级2.0：    super()  >   普通代码块    >    构造器

/*
    顺序如下：

    加载类（从父类开始执行static 修饰的东西）
    public 构造器{
        super();//父类构造器，父类顺序也如此
        普通代码块
        构造器内的正常代码：
    }

 */

class A{
    private static int n1=getN1();//静态变量初始化和静态代码块执行的优先级一样


    {
        System.out.println("A的普通代码块");//普通变量的初始化和普通代码块执行的优先级一样
    }
    private int n2=getN2();


    static{
        System.out.println("A的静态代码块。。");
    }

    public static int getN1(){
        System.out.println("A的getN1方法");
        return 100;
    }

    public  static int getN2(){
        System.out.println("getN2被调用");
        return 200;
    }


    public A(){
        System.out.println("A的构造器");
    }

}